package com.aiden.cashbook.data.charge

import com.aiden.cashbook.bean.Bill
import com.aiden.cashbook.bean.UseType

interface ChargeDataSource {

    interface LoadListCallBack<T> {

        fun onDataLoaded(list: List<T>)

        fun onDataNotAvailable()
    }

    interface SavedCallback {
        fun onSavedSuccess()

        fun onFailure()
    }

    fun chargeAccount(bill: Bill, callback: SavedCallback)

    fun accountType(type: String, callback: LoadListCallBack<UseType>)

    fun billList(userId: Long, page: Int, size: Int, callback: LoadListCallBack<Bill>)
}